package com.flynn.rock.system.service;

import com.flynn.rock.model.PageResult;
import com.flynn.rock.system.model.QueryUserCriteria;
import com.flynn.rock.system.model.dto.SaveUserDto;
import com.flynn.rock.system.model.dto.SysUserDto;
import com.flynn.rock.system.model.vo.ListUserVo;
import com.flynn.rock.system.model.vo.LoginUserVo;
import com.flynn.rock.system.model.vo.UserDetailVo;
import com.flynn.rock.system.model.vo.UserIdVo;
import org.springframework.data.domain.Pageable;

import java.util.Optional;

public interface SysUserService {

    UserIdVo saveUser(SaveUserDto user);

    Optional<SysUserDto> getUserByPhone(String phone);

    PageResult<ListUserVo> pageUser(QueryUserCriteria criteria, Pageable pageable);

    UserDetailVo getUser(Long userId);

    LoginUserVo getLoginUserInfo();

    void deleteUser(Long userId);
}
